// Copyright 2021-2025 Buf Technologies, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.10.1 with parameter "target=ts,import_extension=js"
// @generated from file extra/name-clash.proto (package spec, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { User as User$1 } from "./example_pb.js";
import { file_extra_example } from "./example_pb.js";
import type { Message as Message$1 } from "@bufbuild/protobuf";

/**
 * Describes the file extra/name-clash.proto.
 */
export const file_extra_name_clash: GenFile = /*@__PURE__*/
  fileDesc("ChZleHRyYS9uYW1lLWNsYXNoLnByb3RvEgRzcGVjIiAKBFVzZXISGAoBdRgBIAEoCzINLmV4YW1wbGUuVXNlciLtBwoVUmVzZXJ2ZWRQcm9wZXJ0eU5hbWVzGlQKB0J1aWx0SW4SEwoLY29uc3RydWN0b3IYAiABKAkSEQoJdG9fc3RyaW5nGAMgASgJEg8KB3RvX0pTT04YBCABKAkSEAoIdmFsdWVfb2YYBSABKAkatAEKB1J1bnRpbWUSDwoHdG9fanNvbhgEIAEoCRIMCgR0eXBlGAYgASgJEg0KBWNsb25lGAcgASgJEg4KBmVxdWFscxgIIAEoCRITCgtmcm9tX2JpbmFyeRgJIAEoCRIRCglmcm9tX2pzb24YCiABKAkSGAoQZnJvbV9qc29uX3N0cmluZxgLIAEoCRIRCgl0b19iaW5hcnkYDCABKAkSFgoOdG9fanNvbl9zdHJpbmcYDiABKAkabAoLT25lb2ZCdWx0SW4SFQoLY29uc3RydWN0b3IYASABKAlIABITCgl0b19zdHJpbmcYAiABKAlIABIRCgd0b19KU09OGAMgASgJSAASEgoIdmFsdWVfb2YYBCABKAlIAEIKCghidWlsdF9pbhrWAQoMT25lb2ZSdW50aW1lEhEKB3RvX2pzb24YBSABKAlIABIOCgR0eXBlGAYgASgJSAASDwoFY2xvbmUYByABKAlIABIQCgZlcXVhbHMYCCABKAlIABIVCgtmcm9tX2JpbmFyeRgJIAEoCUgAEhMKCWZyb21fanNvbhgKIAEoCUgAEhoKEGZyb21fanNvbl9zdHJpbmcYCyABKAlIABITCgl0b19iaW5hcnkYDCABKAlIABIYCg50b19qc29uX3N0cmluZxgOIAEoCUgAQgkKB3J1bnRpbWUiRQoLRW51bUJ1aWx0SW4SDwoLY29uc3RydWN0b3IQABIMCgh0b1N0cmluZxABEgoKBnRvSlNPThACEgsKB3ZhbHVlT2YQAyKpAQoTRW51bUJ1aWx0SW5QcmVmaXhlZBImCiJFTlVNX0JVSUxUX0lOX1BSRUZJWEVEX2NvbnN0cnVjdG9yEAASIwofRU5VTV9CVUlMVF9JTl9QUkVGSVhFRF90b1N0cmluZxABEiEKHUVOVU1fQlVJTFRfSU5fUFJFRklYRURfdG9KU09OEAISIgoeRU5VTV9CVUlMVF9JTl9QUkVGSVhFRF92YWx1ZU9mEAMijAEKC0VudW1SdW50aW1lEgoKBnRvSnNvbhAAEggKBHR5cGUQBhIJCgVjbG9uZRAHEgoKBmVxdWFscxAIEg4KCmZyb21CaW5hcnkQCRIMCghmcm9tSnNvbhAKEhIKDmZyb21Kc29uU3RyaW5nEAsSDAoIdG9CaW5hcnkQDBIQCgx0b0pzb25TdHJpbmcQDiILCglpbnRlcmZhY2UiCgoIZnVuY3Rpb24iDAoKaW5zdGFuY2VvZiIICgZzd2l0Y2giBgoEY2FzZSIICgZyZXR1cm4iCQoHTWVzc2FnZSIQCg5QYXJ0aWFsTWVzc2FnZSIOCgxQbGFpbk1lc3NhZ2UiLAoFRXJyb3ISEgoKZmllbGRfbmFtZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJIggKBk9iamVjdCIICgZvYmplY3QiBwoFYXJyYXkiCAoGc3RyaW5nIggKBm51bWJlciIJCgdib29sZWFuIggKBmJpZ2ludCIMCgpVaW50OEFycmF5IgcKBUFycmF5IggKBlN0cmluZyIICgZOdW1iZXIiCQoHQm9vbGVhbiIICgZCaWdJbnQiGwoLQ2xhc2hQYXJlbnQaDAoKQ2xhc2hDaGlsZCIYChZDbGFzaFBhcmVudF9DbGFzaENoaWxkIiMKIUVudW1EZXNjQ2xhc2hXaXRoTWVzc2FnZVNoYXBlRGVzYyIfCh1FbnVtU2hhcGVDbGFzaFdpdGhNZXNzYWdlRGVzYyJxCg1Ob0NsYXNoRmllbGRzEg0KBWNvbnN0GAEgASgJEg4KBnN3aXRjaBgCIAEoCRIMCgRjYXNlGAMgASgJEhAKCGZ1bmN0aW9uGAQgASgJEhEKCWludGVyZmFjZRgFIAEoCRIOCgZyZXR1cm4YBiABKAkihAEKDE5vQ2xhc2hPbmVvZhIPCgVjb25zdBgBIAEoCUgAEhAKBnN3aXRjaBgCIAEoCUgAEg4KBGNhc2UYAyABKAlIABISCghmdW5jdGlvbhgEIAEoCUgAEhMKCWludGVyZmFjZRgFIAEoCUgAEhAKBnJldHVybhgGIAEoCUgAQgYKBGtpbmQiZgoPTm9DbGFzaE9uZW9mQURUEiIKAW0YASABKAsyFy5zcGVjLk5vQ2xhc2hPbmVvZkFEVC5NGi8KAU0SDAoEY2FzZRgBIAEoCRISCgV2YWx1ZRgCIAEoCUgAiAEBQggKBl92YWx1ZSJlCg9Ob0NsYXNoRW51bVdyYXAiUgoBWBIOCgppbnN0YW5jZW9mEAASCgoGc3dpdGNoEAESCAoEY2FzZRADEgwKCGZ1bmN0aW9uEAQSDQoJaW50ZXJmYWNlEAUSCgoGcmV0dXJuEAYqSgodRW51bURlc2NDbGFzaFdpdGhNZXNzYWdlU2hhcGUSKQolTWVzc2FnZURlc2NDbGFzaFdpdGhFbnVtRGVzY0Rlc2NfemVybxAAKk8KIUVudW1TaGFwZUNsYXNoV2l0aE1lc3NhZ2VEZXNjRGVzYxIqCiZFbnVtU2hhcGVDbGFzaFdpdGhNZXNzYWdlRGVzY0Rlc2NfemVybxAAMrgBChxSZXNlcnZlZFByb3BlcnR5TmFtZXNTZXJ2aWNlEicKC2NvbnN0cnVjdG9yEgsuc3BlYy5FcnJvchoLLnNwZWMuRXJyb3ISJAoIdG9TdHJpbmcSCy5zcGVjLkVycm9yGgsuc3BlYy5FcnJvchIjCgd0b19KU09OEgsuc3BlYy5FcnJvchoLLnNwZWMuRXJyb3ISJAoIdmFsdWVfb2YSCy5zcGVjLkVycm9yGgsuc3BlYy5FcnJvcmIGcHJvdG8z", [file_extra_example]);

/**
 * This message class will clash with the imported message class
 *
 * @generated from message spec.User
 */
export type User = Message$1<"spec.User"> & {
  /**
   * Reference the import with the same name to trigger a clash
   *
   * @generated from field: example.User u = 1;
   */
  u?: User$1;
};

/**
 * Describes the message spec.User.
 * Use `create(UserSchema)` to create a new message.
 */
export const UserSchema: GenMessage<User> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 0);

/**
 * @generated from message spec.ReservedPropertyNames
 */
export type ReservedPropertyNames = Message$1<"spec.ReservedPropertyNames"> & {
};

/**
 * Describes the message spec.ReservedPropertyNames.
 * Use `create(ReservedPropertyNamesSchema)` to create a new message.
 */
export const ReservedPropertyNamesSchema: GenMessage<ReservedPropertyNames> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 1);

/**
 * @generated from message spec.ReservedPropertyNames.BuiltIn
 */
export type ReservedPropertyNames_BuiltIn = Message$1<"spec.ReservedPropertyNames.BuiltIn"> & {
  /**
   * built-in constructor()
   *
   * @generated from field: string constructor = 2;
   */
  constructor$: string;

  /**
   * built-in toString()
   *
   * @generated from field: string to_string = 3;
   */
  toString$: string;

  /**
   * built-in toJSON()
   *
   * @generated from field: string to_JSON = 4;
   */
  toJSON$: string;

  /**
   * built-in valueOf()
   *
   * @generated from field: string value_of = 5;
   */
  valueOf$: string;
};

/**
 * Describes the message spec.ReservedPropertyNames.BuiltIn.
 * Use `create(ReservedPropertyNames_BuiltInSchema)` to create a new message.
 */
export const ReservedPropertyNames_BuiltInSchema: GenMessage<ReservedPropertyNames_BuiltIn> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 1, 0);

/**
 * @generated from message spec.ReservedPropertyNames.Runtime
 */
export type ReservedPropertyNames_Runtime = Message$1<"spec.ReservedPropertyNames.Runtime"> & {
  /**
   * runtime toJson()
   *
   * @generated from field: string to_json = 4;
   */
  toJson: string;

  /**
   * runtime type()
   *
   * @generated from field: string type = 6;
   */
  type: string;

  /**
   * runtime clone()
   *
   * @generated from field: string clone = 7;
   */
  clone: string;

  /**
   * runtime equals()
   *
   * @generated from field: string equals = 8;
   */
  equals: string;

  /**
   * runtime fromBinary()
   *
   * @generated from field: string from_binary = 9;
   */
  fromBinary: string;

  /**
   * runtime fromJson()
   *
   * @generated from field: string from_json = 10;
   */
  fromJson: string;

  /**
   * runtime fromJsonString()
   *
   * @generated from field: string from_json_string = 11;
   */
  fromJsonString: string;

  /**
   * runtime toBinary()
   *
   * @generated from field: string to_binary = 12;
   */
  toBinary: string;

  /**
   * runtime toJsonString()
   *
   * @generated from field: string to_json_string = 14;
   */
  toJsonString: string;
};

/**
 * Describes the message spec.ReservedPropertyNames.Runtime.
 * Use `create(ReservedPropertyNames_RuntimeSchema)` to create a new message.
 */
export const ReservedPropertyNames_RuntimeSchema: GenMessage<ReservedPropertyNames_Runtime> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 1, 1);

/**
 * @generated from message spec.ReservedPropertyNames.OneofBultIn
 */
export type ReservedPropertyNames_OneofBultIn = Message$1<"spec.ReservedPropertyNames.OneofBultIn"> & {
  /**
   * @generated from oneof spec.ReservedPropertyNames.OneofBultIn.built_in
   */
  builtIn: {
    /**
     * @generated from field: string constructor = 1;
     */
    value: string;
    case: "constructor";
  } | {
    /**
     * @generated from field: string to_string = 2;
     */
    value: string;
    case: "toString";
  } | {
    /**
     * @generated from field: string to_JSON = 3;
     */
    value: string;
    case: "toJSON";
  } | {
    /**
     * @generated from field: string value_of = 4;
     */
    value: string;
    case: "valueOf";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message spec.ReservedPropertyNames.OneofBultIn.
 * Use `create(ReservedPropertyNames_OneofBultInSchema)` to create a new message.
 */
export const ReservedPropertyNames_OneofBultInSchema: GenMessage<ReservedPropertyNames_OneofBultIn> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 1, 2);

/**
 * @generated from message spec.ReservedPropertyNames.OneofRuntime
 */
export type ReservedPropertyNames_OneofRuntime = Message$1<"spec.ReservedPropertyNames.OneofRuntime"> & {
  /**
   * @generated from oneof spec.ReservedPropertyNames.OneofRuntime.runtime
   */
  runtime: {
    /**
     * @generated from field: string to_json = 5;
     */
    value: string;
    case: "toJson";
  } | {
    /**
     * @generated from field: string type = 6;
     */
    value: string;
    case: "type";
  } | {
    /**
     * @generated from field: string clone = 7;
     */
    value: string;
    case: "clone";
  } | {
    /**
     * @generated from field: string equals = 8;
     */
    value: string;
    case: "equals";
  } | {
    /**
     * @generated from field: string from_binary = 9;
     */
    value: string;
    case: "fromBinary";
  } | {
    /**
     * @generated from field: string from_json = 10;
     */
    value: string;
    case: "fromJson";
  } | {
    /**
     * @generated from field: string from_json_string = 11;
     */
    value: string;
    case: "fromJsonString";
  } | {
    /**
     * @generated from field: string to_binary = 12;
     */
    value: string;
    case: "toBinary";
  } | {
    /**
     * @generated from field: string to_json_string = 14;
     */
    value: string;
    case: "toJsonString";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message spec.ReservedPropertyNames.OneofRuntime.
 * Use `create(ReservedPropertyNames_OneofRuntimeSchema)` to create a new message.
 */
export const ReservedPropertyNames_OneofRuntimeSchema: GenMessage<ReservedPropertyNames_OneofRuntime> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 1, 3);

/**
 * @generated from enum spec.ReservedPropertyNames.EnumBuiltIn
 */
export enum ReservedPropertyNames_EnumBuiltIn {
  /**
   * @generated from enum value: constructor = 0;
   */
  constructor$ = 0,

  /**
   * @generated from enum value: toString = 1;
   */
  toString$ = 1,

  /**
   * @generated from enum value: toJSON = 2;
   */
  toJSON$ = 2,

  /**
   * @generated from enum value: valueOf = 3;
   */
  valueOf$ = 3,
}

/**
 * Describes the enum spec.ReservedPropertyNames.EnumBuiltIn.
 */
export const ReservedPropertyNames_EnumBuiltInSchema: GenEnum<ReservedPropertyNames_EnumBuiltIn> = /*@__PURE__*/
  enumDesc(file_extra_name_clash, 1, 0);

/**
 * @generated from enum spec.ReservedPropertyNames.EnumBuiltInPrefixed
 */
export enum ReservedPropertyNames_EnumBuiltInPrefixed {
  /**
   * @generated from enum value: ENUM_BUILT_IN_PREFIXED_constructor = 0;
   */
  constructor$ = 0,

  /**
   * @generated from enum value: ENUM_BUILT_IN_PREFIXED_toString = 1;
   */
  toString$ = 1,

  /**
   * @generated from enum value: ENUM_BUILT_IN_PREFIXED_toJSON = 2;
   */
  toJSON$ = 2,

  /**
   * @generated from enum value: ENUM_BUILT_IN_PREFIXED_valueOf = 3;
   */
  valueOf$ = 3,
}

/**
 * Describes the enum spec.ReservedPropertyNames.EnumBuiltInPrefixed.
 */
export const ReservedPropertyNames_EnumBuiltInPrefixedSchema: GenEnum<ReservedPropertyNames_EnumBuiltInPrefixed> = /*@__PURE__*/
  enumDesc(file_extra_name_clash, 1, 1);

/**
 * @generated from enum spec.ReservedPropertyNames.EnumRuntime
 */
export enum ReservedPropertyNames_EnumRuntime {
  /**
   * @generated from enum value: toJson = 0;
   */
  toJson = 0,

  /**
   * @generated from enum value: type = 6;
   */
  type = 6,

  /**
   * @generated from enum value: clone = 7;
   */
  clone = 7,

  /**
   * @generated from enum value: equals = 8;
   */
  equals = 8,

  /**
   * @generated from enum value: fromBinary = 9;
   */
  fromBinary = 9,

  /**
   * @generated from enum value: fromJson = 10;
   */
  fromJson = 10,

  /**
   * @generated from enum value: fromJsonString = 11;
   */
  fromJsonString = 11,

  /**
   * @generated from enum value: toBinary = 12;
   */
  toBinary = 12,

  /**
   * @generated from enum value: toJsonString = 14;
   */
  toJsonString = 14,
}

/**
 * Describes the enum spec.ReservedPropertyNames.EnumRuntime.
 */
export const ReservedPropertyNames_EnumRuntimeSchema: GenEnum<ReservedPropertyNames_EnumRuntime> = /*@__PURE__*/
  enumDesc(file_extra_name_clash, 1, 2);

/**
 * reserved identifier
 *
 * @generated from message spec.interface
 */
export type interface$ = Message$1<"spec.interface"> & {
};

/**
 * Describes the message spec.interface.
 * Use `create(interfaceSchema)` to create a new message.
 */
export const interfaceSchema: GenMessage<interface$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 2);

/**
 * reserved identifier
 *
 * @generated from message spec.function
 */
export type function$ = Message$1<"spec.function"> & {
};

/**
 * Describes the message spec.function.
 * Use `create(functionSchema)` to create a new message.
 */
export const functionSchema: GenMessage<function$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 3);

/**
 * reserved identifier
 *
 * @generated from message spec.instanceof
 */
export type instanceof$ = Message$1<"spec.instanceof"> & {
};

/**
 * Describes the message spec.instanceof.
 * Use `create(instanceofSchema)` to create a new message.
 */
export const instanceofSchema: GenMessage<instanceof$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 4);

/**
 * reserved identifier
 *
 * @generated from message spec.switch
 */
export type switch$ = Message$1<"spec.switch"> & {
};

/**
 * Describes the message spec.switch.
 * Use `create(switchSchema)` to create a new message.
 */
export const switchSchema: GenMessage<switch$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 5);

/**
 * reserved identifier
 *
 * @generated from message spec.case
 */
export type case$ = Message$1<"spec.case"> & {
};

/**
 * Describes the message spec.case.
 * Use `create(caseSchema)` to create a new message.
 */
export const caseSchema: GenMessage<case$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 6);

/**
 * reserved identifier
 *
 * @generated from message spec.return
 */
export type return$ = Message$1<"spec.return"> & {
};

/**
 * Describes the message spec.return.
 * Use `create(returnSchema)` to create a new message.
 */
export const returnSchema: GenMessage<return$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 7);

/**
 * used by runtime
 *
 * @generated from message spec.Message
 */
export type Message = Message$1<"spec.Message"> & {
};

/**
 * Describes the message spec.Message.
 * Use `create(MessageSchema)` to create a new message.
 */
export const MessageSchema: GenMessage<Message> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 8);

/**
 * used by runtime
 *
 * @generated from message spec.PartialMessage
 */
export type PartialMessage = Message$1<"spec.PartialMessage"> & {
};

/**
 * Describes the message spec.PartialMessage.
 * Use `create(PartialMessageSchema)` to create a new message.
 */
export const PartialMessageSchema: GenMessage<PartialMessage> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 9);

/**
 * used by runtime
 *
 * @generated from message spec.PlainMessage
 */
export type PlainMessage = Message$1<"spec.PlainMessage"> & {
};

/**
 * Describes the message spec.PlainMessage.
 * Use `create(PlainMessageSchema)` to create a new message.
 */
export const PlainMessageSchema: GenMessage<PlainMessage> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 10);

/**
 * clash with global type "Error"
 * either this message name is escaped in generated code, or the generated
 * code must escape its calls to the global error object (i.e. `new Error`)
 *
 * @generated from message spec.Error
 */
export type Error = Message$1<"spec.Error"> & {
  /**
   * @generated from field: string field_name = 1;
   */
  fieldName: string;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message spec.Error.
 * Use `create(ErrorSchema)` to create a new message.
 */
export const ErrorSchema: GenMessage<Error> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 11);

/**
 * clash with global type
 *
 * @generated from message spec.Object
 */
export type Object$ = Message$1<"spec.Object"> & {
};

/**
 * Describes the message spec.Object.
 * Use `create(ObjectSchema)` to create a new message.
 */
export const ObjectSchema: GenMessage<Object$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 12);

/**
 * @generated from message spec.object
 */
export type object$ = Message$1<"spec.object"> & {
};

/**
 * Describes the message spec.object.
 * Use `create(objectSchema)` to create a new message.
 */
export const objectSchema: GenMessage<object$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 13);

/**
 * clash with global type
 *
 * @generated from message spec.array
 */
export type array = Message$1<"spec.array"> & {
};

/**
 * Describes the message spec.array.
 * Use `create(arraySchema)` to create a new message.
 */
export const arraySchema: GenMessage<array> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 14);

/**
 * clash with global type
 *
 * @generated from message spec.string
 */
export type string$ = Message$1<"spec.string"> & {
};

/**
 * Describes the message spec.string.
 * Use `create(stringSchema)` to create a new message.
 */
export const stringSchema: GenMessage<string$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 15);

/**
 * clash with global type
 *
 * @generated from message spec.number
 */
export type number$ = Message$1<"spec.number"> & {
};

/**
 * Describes the message spec.number.
 * Use `create(numberSchema)` to create a new message.
 */
export const numberSchema: GenMessage<number$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 16);

/**
 * clash with global type
 *
 * @generated from message spec.boolean
 */
export type boolean$ = Message$1<"spec.boolean"> & {
};

/**
 * Describes the message spec.boolean.
 * Use `create(booleanSchema)` to create a new message.
 */
export const booleanSchema: GenMessage<boolean$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 17);

/**
 * clash with global type
 *
 * @generated from message spec.bigint
 */
export type bigint$ = Message$1<"spec.bigint"> & {
};

/**
 * Describes the message spec.bigint.
 * Use `create(bigintSchema)` to create a new message.
 */
export const bigintSchema: GenMessage<bigint$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 18);

/**
 * clash with global type
 *
 * @generated from message spec.Uint8Array
 */
export type Uint8Array$ = Message$1<"spec.Uint8Array"> & {
};

/**
 * Describes the message spec.Uint8Array.
 * Use `create(Uint8ArraySchema)` to create a new message.
 */
export const Uint8ArraySchema: GenMessage<Uint8Array$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 19);

/**
 * clash with global type
 *
 * @generated from message spec.Array
 */
export type Array = Message$1<"spec.Array"> & {
};

/**
 * Describes the message spec.Array.
 * Use `create(ArraySchema)` to create a new message.
 */
export const ArraySchema: GenMessage<Array> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 20);

/**
 * clash with global type
 *
 * @generated from message spec.String
 */
export type String = Message$1<"spec.String"> & {
};

/**
 * Describes the message spec.String.
 * Use `create(StringSchema)` to create a new message.
 */
export const StringSchema: GenMessage<String> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 21);

/**
 * clash with global type
 *
 * @generated from message spec.Number
 */
export type Number = Message$1<"spec.Number"> & {
};

/**
 * Describes the message spec.Number.
 * Use `create(NumberSchema)` to create a new message.
 */
export const NumberSchema: GenMessage<Number> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 22);

/**
 * clash with global type
 *
 * @generated from message spec.Boolean
 */
export type Boolean = Message$1<"spec.Boolean"> & {
};

/**
 * Describes the message spec.Boolean.
 * Use `create(BooleanSchema)` to create a new message.
 */
export const BooleanSchema: GenMessage<Boolean> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 23);

/**
 * clash with global type
 *
 * @generated from message spec.BigInt
 */
export type BigInt = Message$1<"spec.BigInt"> & {
};

/**
 * Describes the message spec.BigInt.
 * Use `create(BigIntSchema)` to create a new message.
 */
export const BigIntSchema: GenMessage<BigInt> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 24);

/**
 * @generated from message spec.ClashParent
 */
export type ClashParent = Message$1<"spec.ClashParent"> & {
};

/**
 * Describes the message spec.ClashParent.
 * Use `create(ClashParentSchema)` to create a new message.
 */
export const ClashParentSchema: GenMessage<ClashParent> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 25);

/**
 * should clash with message ClashParent_ClashChild
 *
 * @generated from message spec.ClashParent.ClashChild
 */
export type ClashParent_ClashChild = Message$1<"spec.ClashParent.ClashChild"> & {
};

/**
 * Describes the message spec.ClashParent.ClashChild.
 * Use `create(ClashParent_ClashChildSchema)` to create a new message.
 */
export const ClashParent_ClashChildSchema: GenMessage<ClashParent_ClashChild> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 25, 0);

/**
 * should clash with name of ClashParent.ClashChild
 *
 * @generated from message spec.ClashParent_ClashChild
 */
export type ClashParent_ClashChild$ = Message$1<"spec.ClashParent_ClashChild"> & {
};

/**
 * Describes the message spec.ClashParent_ClashChild.
 * Use `create(ClashParent_ClashChildSchema$)` to create a new message.
 */
export const ClashParent_ClashChildSchema$: GenMessage<ClashParent_ClashChild$> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 26);

/**
 * message shape should clash with enum descriptor
 *
 * @generated from message spec.EnumDescClashWithMessageShapeDesc
 */
export type EnumDescClashWithMessageShapeDesc = Message$1<"spec.EnumDescClashWithMessageShapeDesc"> & {
};

/**
 * Describes the message spec.EnumDescClashWithMessageShapeDesc.
 * Use `create(EnumDescClashWithMessageShapeDescSchema)` to create a new message.
 */
export const EnumDescClashWithMessageShapeDescSchema: GenMessage<EnumDescClashWithMessageShapeDesc> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 27);

/**
 * @generated from message spec.EnumShapeClashWithMessageDesc
 */
export type EnumShapeClashWithMessageDesc = Message$1<"spec.EnumShapeClashWithMessageDesc"> & {
};

/**
 * Describes the message spec.EnumShapeClashWithMessageDesc.
 * Use `create(EnumShapeClashWithMessageDescSchema)` to create a new message.
 */
export const EnumShapeClashWithMessageDescSchema: GenMessage<EnumShapeClashWithMessageDesc> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 28);

/**
 * @generated from message spec.NoClashFields
 */
export type NoClashFields = Message$1<"spec.NoClashFields"> & {
  /**
   * ok as object property
   *
   * @generated from field: string const = 1;
   */
  const: string;

  /**
   * ok as object property
   *
   * @generated from field: string switch = 2;
   */
  switch: string;

  /**
   * ok as object property
   *
   * @generated from field: string case = 3;
   */
  case: string;

  /**
   * ok as object property
   *
   * @generated from field: string function = 4;
   */
  function: string;

  /**
   * ok as object property
   *
   * @generated from field: string interface = 5;
   */
  interface: string;

  /**
   * ok as object property
   *
   * @generated from field: string return = 6;
   */
  return: string;
};

/**
 * Describes the message spec.NoClashFields.
 * Use `create(NoClashFieldsSchema)` to create a new message.
 */
export const NoClashFieldsSchema: GenMessage<NoClashFields> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 29);

/**
 * @generated from message spec.NoClashOneof
 */
export type NoClashOneof = Message$1<"spec.NoClashOneof"> & {
  /**
   * @generated from oneof spec.NoClashOneof.kind
   */
  kind: {
    /**
     * ok as object property
     *
     * @generated from field: string const = 1;
     */
    value: string;
    case: "const";
  } | {
    /**
     * ok as object property
     *
     * @generated from field: string switch = 2;
     */
    value: string;
    case: "switch";
  } | {
    /**
     * ok as object property
     *
     * @generated from field: string case = 3;
     */
    value: string;
    case: "case";
  } | {
    /**
     * ok as object property
     *
     * @generated from field: string function = 4;
     */
    value: string;
    case: "function";
  } | {
    /**
     * ok as object property
     *
     * @generated from field: string interface = 5;
     */
    value: string;
    case: "interface";
  } | {
    /**
     * ok as object property
     *
     * @generated from field: string return = 6;
     */
    value: string;
    case: "return";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message spec.NoClashOneof.
 * Use `create(NoClashOneofSchema)` to create a new message.
 */
export const NoClashOneofSchema: GenMessage<NoClashOneof> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 30);

/**
 * @generated from message spec.NoClashOneofADT
 */
export type NoClashOneofADT = Message$1<"spec.NoClashOneofADT"> & {
  /**
   * @generated from field: spec.NoClashOneofADT.M m = 1;
   */
  m?: NoClashOneofADT_M;
};

/**
 * Describes the message spec.NoClashOneofADT.
 * Use `create(NoClashOneofADTSchema)` to create a new message.
 */
export const NoClashOneofADTSchema: GenMessage<NoClashOneofADT> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 31);

/**
 * @generated from message spec.NoClashOneofADT.M
 */
export type NoClashOneofADT_M = Message$1<"spec.NoClashOneofADT.M"> & {
  /**
   * @generated from field: string case = 1;
   */
  case: string;

  /**
   * @generated from field: optional string value = 2;
   */
  value?: string;
};

/**
 * Describes the message spec.NoClashOneofADT.M.
 * Use `create(NoClashOneofADT_MSchema)` to create a new message.
 */
export const NoClashOneofADT_MSchema: GenMessage<NoClashOneofADT_M> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 31, 0);

/**
 * just here as a "namespace" for the enum
 *
 * @generated from message spec.NoClashEnumWrap
 */
export type NoClashEnumWrap = Message$1<"spec.NoClashEnumWrap"> & {
};

/**
 * Describes the message spec.NoClashEnumWrap.
 * Use `create(NoClashEnumWrapSchema)` to create a new message.
 */
export const NoClashEnumWrapSchema: GenMessage<NoClashEnumWrap> = /*@__PURE__*/
  messageDesc(file_extra_name_clash, 32);

/**
 * @generated from enum spec.NoClashEnumWrap.X
 */
export enum NoClashEnumWrap_X {
  /**
   * ok as object property
   *
   * @generated from enum value: instanceof = 0;
   */
  instanceof = 0,

  /**
   * ok as object property
   *
   * @generated from enum value: switch = 1;
   */
  switch = 1,

  /**
   * ok as object property
   *
   * @generated from enum value: case = 3;
   */
  case = 3,

  /**
   * ok as object property
   *
   * @generated from enum value: function = 4;
   */
  function = 4,

  /**
   * ok as object property
   *
   * @generated from enum value: interface = 5;
   */
  interface = 5,

  /**
   * ok as object property
   *
   * @generated from enum value: return = 6;
   */
  return = 6,
}

/**
 * Describes the enum spec.NoClashEnumWrap.X.
 */
export const NoClashEnumWrap_XSchema: GenEnum<NoClashEnumWrap_X> = /*@__PURE__*/
  enumDesc(file_extra_name_clash, 32, 0);

/**
 * @generated from enum spec.EnumDescClashWithMessageShape
 */
export enum EnumDescClashWithMessageShape {
  /**
   * @generated from enum value: MessageDescClashWithEnumDescDesc_zero = 0;
   */
  MessageDescClashWithEnumDescDesc_zero = 0,
}

/**
 * Describes the enum spec.EnumDescClashWithMessageShape.
 */
export const EnumDescClashWithMessageShapeSchema: GenEnum<EnumDescClashWithMessageShape> = /*@__PURE__*/
  enumDesc(file_extra_name_clash, 0);

/**
 * enum shape should clash with message descriptor
 *
 * @generated from enum spec.EnumShapeClashWithMessageDescDesc
 */
export enum EnumShapeClashWithMessageDescDesc {
  /**
   * @generated from enum value: EnumShapeClashWithMessageDescDesc_zero = 0;
   */
  EnumShapeClashWithMessageDescDesc_zero = 0,
}

/**
 * Describes the enum spec.EnumShapeClashWithMessageDescDesc.
 */
export const EnumShapeClashWithMessageDescDescSchema: GenEnum<EnumShapeClashWithMessageDescDesc> = /*@__PURE__*/
  enumDesc(file_extra_name_clash, 1);

/**
 * @generated from service spec.ReservedPropertyNamesService
 */
export const ReservedPropertyNamesService: GenService<{
  /**
   * @generated from rpc spec.ReservedPropertyNamesService.constructor
   */
  constructor$: {
    methodKind: "unary";
    input: typeof ErrorSchema;
    output: typeof ErrorSchema;
  },
  /**
   * @generated from rpc spec.ReservedPropertyNamesService.toString
   */
  toString$: {
    methodKind: "unary";
    input: typeof ErrorSchema;
    output: typeof ErrorSchema;
  },
  /**
   * @generated from rpc spec.ReservedPropertyNamesService.to_JSON
   */
  to_JSON: {
    methodKind: "unary";
    input: typeof ErrorSchema;
    output: typeof ErrorSchema;
  },
  /**
   * @generated from rpc spec.ReservedPropertyNamesService.value_of
   */
  value_of: {
    methodKind: "unary";
    input: typeof ErrorSchema;
    output: typeof ErrorSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_extra_name_clash, 0);

